﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MySql.Data.MySqlClient;
using Basicas.Utils;
using System.Data;

namespace ProjetoJornada_DAL.Repositorio
{
    public class RepCursoNaJornada
    {
        private DAO dao;

        public RepCursoNaJornada()
        {
            this.dao = DAO.Instance;
        }

        #region Metodos
        public int Inserir(int IdCurso, int IdJornada)
        {
            String storeProcedure = "sp_CursoNaJornada_Inserir";

            try
            {
                MySqlParameter[] parametros = new MySqlParameter[3];

                parametros[0] = new MySqlParameter();
                parametros[0].ParameterName = @"IdCurso";
                parametros[0].Value = IdCurso;
                parametros[0].DbType = System.Data.DbType.Int32;

                parametros[1] = new MySqlParameter();
                parametros[1].ParameterName = @"IdJornada";
                parametros[1].Value = IdJornada;
                parametros[1].DbType = System.Data.DbType.Int32;

                parametros[2] = new MySqlParameter();
                parametros[2].ParameterName = @"Result";
                parametros[2].DbType = System.Data.DbType.Int32;
                parametros[2].Direction = ParameterDirection.Output;

                int idCursoNaJornada = (int) dao.ExecutaFuncao(parametros, storeProcedure);

                return idCursoNaJornada;
            }
            catch (Exception ex)
            {
                Auxiliar.GravaLog(ex.Message, "inserirCursoNaJornada");
                throw ex;
            }
        }
        
        /*
         * Retorna o Id do CursoNaJornada se existir
         * Ou
         * Retorna ZERO se não existir
         */
        public int JaExisteCursoNaJornada(int IdCurso, int IdJornada)
        {
            string storedProcedure = "sp_CursoNaJornada_Select";
            MySqlDataReader dr = null;
            try
            {
                MySqlParameter[] parametros = new MySqlParameter[2];

                parametros[0] = new MySqlParameter();
                parametros[0].ParameterName = @"idCursoIn";
                parametros[0].Value = IdCurso;
                parametros[0].DbType = System.Data.DbType.Int32;

                parametros[1] = new MySqlParameter();
                parametros[1].ParameterName = @"idJornadaIn";
                parametros[1].Value = IdJornada;
                parametros[1].DbType = System.Data.DbType.Int32;

                dr = dao.ExecutaLeituraProcedure(parametros, storedProcedure);

                int retorno = 0;
                if (dr.HasRows)
                {
                    dr.Read();

                    retorno = dr.GetInt32("Id_CursoJornada");
                }

                return retorno;
            }
            catch (Exception ex)
            {
                Auxiliar.GravaLog(ex.Message, "JaExisteCursoNaJornada - Repositorio");
                throw ex;
            }
            finally
            {
                if (dr != null)
                {
                    dr.Close();
                }

                dao.FecharConexao();

            }
        }        

        #endregion
    }
}
